草庐IT

c++ - 使用 IDebugControl::Disassemble 查看子程序的指令

所以我正在尝试使用WindowsAPI(DbgEng.h/.lib)“反汇编”函数来查看模块中某个函数(我知道它已导出)的指令。但是....它返回了一个意外错误。IDebugClient*clt;IDebugControl*ctrl;voidInitializeInterfaces(void){HRESULTstatus;if((status=DebugCreate(__uuidof(IDebugClient),(void**)&clt))!=S_OK){Utils::add_log("IDebugClientDebugCreatefailed:0x%X\n",status);}clt

c++ - GTK3 :How to receive input value from entry/input box?

我是GTK的新手,我想知道如何调整输入框的大小以及标签和框之间的间距?此外,如何从输入框中接收输入值以供进一步使用,如C函数“scanf”。谢谢你,抱歉我的英语不好#include#include#includestaticvoiddestroy(GtkWidget*widget,gpointerdata){gtk_main_quit();}staticvoidinitialize_window(GtkWidget*window){gtk_window_set_title(GTK_WINDOW(window),"MyWindow");gtk_window_set_default_siz

c - 当 HDC 的窗口被破坏时会发生什么?

我正在编写一个库,它在底层与HWND和HDC一起工作。ReleaseDC将一个HWND作为参数,但是如果窗口已经被销毁了怎么办?Windows会自动释放HDC,还是会导致资源泄漏? 最佳答案 在Windows10上测试时,似乎在销毁窗口时自动释放使用GetDC检索的DC。创建窗口、检索DC并销毁窗口的无限循环在第一次迭代后没有增加内存使用量。为了确保某些内部引用计数不会在不递减的情况下递增,我更改了循环以从同一窗口重复获取DC。这不仅增加了每次迭代的内存使用量,而且还使我的整个系统变慢且不稳定。

c++ - 在 Windows 上将时间字符串转换为纪元时间

我有一个获取文件的界面,文件名是内部数据有效时的时间戳。我正在按顺序处理文件并将它们提供给另一个API,该API自1970年1月1日起以毫秒为单位。因此,我将文件名作为YYYYMMDD_HHmmSS.sss格式的字符串输入,并且必须将其转换为时间。我假设处理和收集发生在同一时区等,只需将字符转换为数字即可。uint64_tfoo::convertFileNameToTimestamp(conststd::string&filename)const{constuint64_tyyyy=atoi(filename.substr(0,4).c_str());constuint64_tMM=a

c++ - 是什么可以导致SetupDiGetClassDevs不返回任何设备接口(interface)? (Windows,C++)

我已经在这个问题上工作了一个多月了。我想做什么:获取无故障连接到系统的HID设备的列表。发生了什么:SetupDiGetClassDevs间歇性地不返回任何设备(针对HID设备进行过滤时),而仅返回所讨论的特定进程。同时运行相同调用的其他进程运行完美。无论我如何努力,我都无法在干净的项目中重现此问题。背景:我是在Unity3D(游戏引擎)下运行的输入系统的作者。我的一个客户在他的(大型)项目中遇到了操纵杆热插拔的问题。在他的游戏的标题屏幕上,一切正常进行。加载第一个游戏级别后,Windows会间歇性地(看似随机地)报告零个HID设备。只要仍然连接当前Controller,输入就可以正常

c++ - 在 Visual Studio 2015 中使用 XP Targeting 编译时 Windows XP 上出现 fatal error

我正在使用TR2的文件系统库通过last_write_time函数检索文件的最后修改时间,但是在WindowsXP上调用last_write_time时会发生fatalerror。我无法隔离导致WindowsXP而非Windows7/8/10上的fatalerror的代码。DLL项目(fatalerror)CheckRevision.cppCheckRevision.hutil.cpputil.h这是我尝试用一​​个不会给出fatalerror的EXE项目隔离有问题的代码:main.cpp这是错误:Exception:0xC0000005(ACCESS_VIOLATION)at001B

c - clang 是独立的 C 编译器还是需要 gcc?

我想在Windows上使用clang来编译C代码。我想知道它是否实际上是一个可以做到这一点的独立编译器,或者它的目标是否有些不同?我以前用过它,但现在看来它是在任何gcc编译器(例如mingw)之上搭载的。如果我尝试全新安装clang64位二进制文​​件(并且我隐藏了我的mingw/gcc目录),那么它找不到HelloWorld的stdio.h。这是直接从bin目录(C:\clang\bin)中运行的。如果我取消隐藏mingw,它会编译,但是我会得到这样的错误(一个mingw编译器在c:\win中):c:\win\bin\ld.exe找不到-lgcc_s考虑到clang是一个438MB

c++ - 文件未完全解密,AES CBC 模式。第一个 block 没有解密。 WCAPI

好的,我有5个文件正在加密。我没有设置IV。第一个文件解密没问题,然后剩余文件的第一个block不被解密。所以文件解密99%。我尝试将IV设置为静态值和随机值,结果相同。要100%解密,我加密的第一个文件不必是我解密的第一个文件。哪个让我相信它与解密有关?因此,为了加密,我导入了一个aeskey来创建一个key句柄。然后我加密一个文件并使用相同的key句柄移动到另一个文件...我应该为每个文件设置一个新的key句柄吗?是否有清除按键句柄的功能?有什么东西告诉我WCAPI正在使用上一个文件的最后一个block作为下一个文件的IV?如果我可能误解了什么,请原谅我。这里是decrypt_fi

c++ - OpenCL 编译器异常情况

我是一名从事OpenCL工作的新人。当我尝试编译内核时遇到了一些奇怪的麻烦。在Nvidia平台上,无论源代码中的什么代码,它总是显示cl_success并且日志只有“\n”;在Intel平台上,不管源码里是什么代码,clBuildProgram返回CL_INVALID_BINARY,clGetProgramBuildInfo和CL_PROGRAM_BUILD_STATUS返回CL_ERROR,看日志没发现错误:fclbuild1succeeded.\nfclbuild2succeeded.\nbclbuildsucceeded.\n.由于这是我的第一段复杂的内核代码,我知道它有很多错误

c++ - 调试器显示的两个相同的调用堆栈不同

在我的代码中我有一个错误:我锁定了std::mutex两次。我总是运行我的应用程序的调试版本。有2个运行案例:我在调试器下运行它。在这种情况下,我得到以下堆栈跟踪的异常。没关系。我只是在没有调试器的情况下运行它。我得到MicrosoftVisualC++RuntimeLibraryDebugError窗口。然后我将调试器连接到进程并单击“重试”。我得到以下堆栈跟踪,实际上什么也没显示:完全相同的错误。两个不同的堆栈跟踪。为什么?补充#1:我正确指定了所有符号(包括MicrosoftWindows的符号)。 最佳答案 在第一个堆栈中,